package com.hr.system.service.impl;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hr.common.utils.DeptUtil;
import com.hr.common.utils.MenuUtil;
import com.hr.system.entity.SysDept;
import com.hr.system.entity.SysMenu;
import com.hr.system.entity.vo.DeptTree;
import com.hr.system.mapper.SysDeptMapper;
import com.hr.system.service.SysDeptService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 部门表 服务实现类
 * </p>
 *
 * @author hr
 * @since 2024-05-05
 */
@Service

public class SysDeptServiceImpl  implements SysDeptService {

    @Autowired
    private SysDeptMapper sysDeptMapper;
    @Override
    public List<SysDept> getList(SysDept sysDept) {
        return sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
                .like(sysDept.getDeptName()!=null,SysDept::getDeptName,sysDept.getDeptName())
        );
    }

    @Override
    public Integer add(SysDept sysDept) {
        return sysDeptMapper.insert(sysDept);
    }

    @Override
    public Integer update(SysDept sysDept) {
        return sysDeptMapper.updateById(sysDept);
    }

    @Override
    public List<DeptTree> queryTree() {
        List<SysDept> sysDepts = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
                             .orderByDesc(SysDept::getOrderNum)
        );
        return DeptUtil.getDeptTree(sysDepts);
    }

    @Override
    public Integer delete(Integer id) {
        return sysDeptMapper.deleteById(id);
    }

    @Override
    public SysDept selectById(Integer id) {
        return sysDeptMapper.selectById(id);
    }
}
